/**
    * Created by Mark on 2018/4/3.
    * 定义通用js函数
    */
var Hogan = require("hogan.js");
var conf = {
    //dev
    serverHost : ''

    //prod
    // serverHost : 'http://www.choisaaaa.campuso2o.com'
};

var _common = {
    //1.网络请求
    request :function(param) {
        var _this = this;
        $.ajax({

            type : param.method || "get",
            url : param.url ||"",
            dataType : param.dataType ||"json",
            data : param.data || "",
            xhrFields:{
                withCredentials: true
            },
            crossDomain: true,
            success : function(res){//请求成功的回调函数
                //请求成功
                if(0 === res.status){
                    typeof  param.success === "function" && param.success(res);
                }
                //前端输入的参数值有误
                else if(1 === res.status){
                    typeof param.error === 'function' && param.error(res);
                }
                //需要登录
                else if(10 === res.status){
                    _this.doLogin();
                }
                //店家需要登录
                else if(11 === res.status){
                    _this.doSellerLogin();
                }
                //后台发生了异常
                else if(-1 === res.status){
                    console.error(res.msg);
                    res.msg = "我们的服务器不是很听话，它又淘气了！请稍后再试..."
                    typeof param.error === 'function' && param.error(res);
                }
                //前端输入的参数有误
                else if(2 == res.status){
                    console.error(res.msg);
                    res.msg = "抱歉！您输入的参数值不合法..";
                    typeof param.error === 'function' && param.error(res);
                }
            },

            error :function(err){ //请求失败的回调函数
                typeof param.error === 'function' && param.error(err.statusText);
            }
        });
    },
    //2.获取服务器地址
    getServerUrl : function(path){
        return conf.serverHost + path;
    },
    //3.获取URL里的参数
    getUrlParam : function(name){
        var reg = new RegExp('(^|&)' + name + '=([^&]*)(&|$)');
        var result = window.location.search.substr(1).match(reg);
        return result ? decodeURIComponent(result[2]) : null;
    },
    //4.渲染HTML模板
    renderHtml : function (HtmlTemplate,data) {
        var template = Hogan.compile(HtmlTemplate);
        var result = template.render(data);
        return result;
    },
    //5.成功提示
    successTips : function(msg){
        alert(msg || "操作成功！")
    },
    //6.错误提示
    errorTips : function(msg){
        alert(msg || "哪里不对了吧！")
    },
    //7.字段的验证，支持非空、手机、邮箱的判断
    validate : function(value,type){
        var vaule = $.trim(value);
        //非空判断
        if("require"===type){
            return !! value;//强转布尔型
        }
        //手机号验证
        if("phone"===type){
            return /^1\d{10}$/.test(value);
        }
        //邮箱格式的验证
        if("email"===type){
            return /^(\w)+(\.\w+)*@(\w)+((\.\w{2,3}){1,3})$/.test(value);
        }
    },
    //8.统一跳转
    doLogin : function(){
        if(window.confirm("是否马上去【登录】")){
            window.location.href = "./user-login.html?redirect="+encodeURIComponent(window.location.href)
        }else{
           // window.history.back()
        }
    },
    doSellerLogin : function () {
        if(window.confirm("是否马上去【注册店家】")){
            window.location.href = "./seller-register.html";
        }else{
            // window.history.back()
        }
    },
    goHome : function(){
        window.location.href = "./index.html";
    }
}
//导出模块
module.exports =_common;

